<?php

require_once '../ctl/config.php';

function run() {
	require_once 'Zend/Http/Client.php';
	$client = new Zend_Http_Client('http://bash.org.ru/best');
	$client->setConfig(array('timeout' => 30));
	$response = $client->request();
	$body = $response->getBody();
	
	//echo '<meta http-eqexuiv="Content-Type" content="text/html; charset=utf-8">';



	$dom = new Zend_Dom_Query($body);
	$containers = $dom->query('.quote');

	// На bash все посты лежат внутри div class='quote'
	foreach ($containers as $key => $container) {
		$info = array();

		// Из поста нам нужен - рейтинг, текст, ext_id, тэги, дата поста
		$html = get_inner_html($container);
		$d = new Zend_Dom_Query($html);

		// Изначально, узнаем ID и рейтинг поста, если он уже у нас есть - обновляем и выходим
		$rating = $d->query('span.rating')->current();
		$info['rating'] = intval($rating->nodeValue);
		
		$extId = $d->query('a.id')->current();		
		$info['ext_id'] = substr($extId->nodeValue, 1);

		$tmp = mysql_query("select * from bash where ext_id = {$info['ext_id']}");
		$row = mysql_fetch_assoc($tmp);
		// Если пост уже существует - обновляем рейтинг и переходим к следующему
		if ($row) {
			$q = "update bash set rating = {$info['rating']} where ext_id = {$info['ext_id']}";
			echo $q . "\n";
			$r = mysql_query($q);
			if (!$r) {
				$e = mysql_error();
				echo $e . "\n";
				error_log($e);
			}

			continue;
		}

		// Заполняем остальные поля
		// Дату добавления поста
		$date = $d->query('span.date')->current();
		$info['add_date'] = $date->nodeValue;

		// Текст
		//$text = $d->query("div.text")->current();
		//$info['text'] = $text->nodeValue;
		//echo $text->nodeValue;
		preg_match('/<div class=" text ">(.+?)<\/div>/is', $html, $matches);
		$m = trim($matches[1]);
		$m2 = iconv('utf-8','CP1252',$m);
		$info['text'] = trim(iconv('CP1251','utf-8',$m2)); 

		$date = date('Y-m-d H:i:s');
		$info['created'] = $date;
		$info['modified'] = $date;

		//echo "<pre>";
		//var_dump($info);die();

		$query = '';
		foreach ($info as $k => $v) {
			$query .= "`$k` = '$v',";
		}
		$query = trim($query, ',');

		$query = "insert into bash set $query";
		echo $query . "\n";
		
		$result = mysql_query($query);
		if (!$result) {
			$e = mysql_error();
			echo $e . "\n";
			error_log($e);
		}
	}
}


function get_inner_html( $node ) {
    $innerHTML= '';
    $children = $node->childNodes;
    foreach ($children as $child) {
	$innerHTML .= $child->ownerDocument->saveXML($child);
    }

    return $innerHTML;
} 

ob_start();
run();
$content = ob_get_contents();
$f = fopen('bash.log', 'a+');
fwrite($f, $content);
fclose($f);



